package final_wearebatman_model;

//az oszcilloszkópot megvalósító osztály
public class Scope implements IhasInput {

    private String name;
    private StringBuilder data;
    private Input input;
    private Wire wire;
    private int counter;

    //konstruktor
    public Scope(String name) {
        this.input = new Input();
        this.name = name;
        this.data = new StringBuilder();
        this.counter = 0;
    }

    //setter az inputra
    public void setInputData(int pin, int data) {
        this.input.setData(data);
    }

    //getter az inputra
    public int getInputData(int pin) {
        return this.input.getData();
    }

    //vezeték inputját összekötő metódus
    public void connectWireInput(int pin, Wire wire) {
        this.wire = wire;
    }

    //a tényleges működést megvalósító metódus
    public void operate() {
        if(this.counter==0)
            this.data.append(this.input.getData());
        else {
            this.data.deleteCharAt(this.data.length()-1);
            this.data.append(this.input.getData());
        }
        this.counter++;        
    }

    //név lekérése
    public String getName() {
        return this.name;
    }

    //számlálók nullázása
    public void resetCounter() {
        this.counter = 0;
    }

    //végső állapot
    public String getFinalState() {
        return this.data.toString();
    }

}
